from channels.generic.websocket import WebsocketConsumer
from channels.exceptions import StopConsumer


class ChatConsumer(WebsocketConsumer):

    def websocket_connect(self, message):
        # 有客户端向后端发送websocket连接的请求时，自动触发
        print("有人来连接了！")
        self.accept()  # 服务端允许和客户端创建连接
        # raise StopConsumer() # 如果不要连接就直接触发异常

    def websocket_receive(self, message):
        # 浏览器基于websocket向后端发送数据，自动触发接收消息。
        print('接收到消息', message)  # 服务端接收的消息
        self.send(text_data='收到了')  # 服务端向客户端发送数据
        self.close()  # 服务器要关闭的话

    def websocket_disconnect(self, message):
        # 客户端与服务端断开连接时，自动触发。
        print('客户端断开连接了')
        raise StopConsumer()
